package com.prj.ufdm.cloud.ms.auth.dao;

import java.util.List;
import java.util.Map;
import org.apache.ibatis.annotations.Mapper;
import com.prj.ufdm.cloud.ms.core.dao.BaseDao;
import com.prj.ufdm.cloud.ms.auth.model.SysFunction;

/**
 * Function Dao 类 
 * @author 胡义振  
 * @date 2018年3月26日
 */
@Mapper
public interface SysFunctionDao extends BaseDao<SysFunction>{
	
	/**
     * DESC: 根据用户ID，查询用户的资源
     * @auther 胡义振
     * @param 
     *     userId   用户ID
     *     menuFlag 为1，查询菜单功能
     * @return 用户资源列表
     * @throws Exception 
     */
    public List<SysFunction> selectFunctionListByUserId(Map<String,String> map) throws Exception;
    
	/**
     * DESC: 根据用户ID，查询用户的资源(所有资源，通过ownerFlag标记角色ID拥有的资源)
     * @auther 胡义振
     * @param 
     *     userId   用户ID
     *     menuFlag 为1，查询菜单功能
     * @return 用户资源列表
     * @throws Exception 
     */
    public List<SysFunction> selectAllFunctionListByUserId(Map<String,String> map) throws Exception;
    
    /**
     * DESC: 根据角色ID，查询角色的资源
     * @auther 胡义振
     * @date 2018-03-17
     * @param 
     *     roleId   角色ID
     *     menuFlag 为1，查询菜单功能
     * @return 角色资源列表
     * @throws Exception 
     */
    public List<SysFunction> selectFunctionListByRoleId(Map<String,String> map) throws Exception;
    
    /**
     * DESC: 根据角色ID，查询角色的资源(返回所有资源，通过ownerFlag进行标识)
     * @auther 胡义振
     * @date 2020-01-15
     * @param 
     *     roleId   角色ID
     *     menuFlag 为1，查询菜单功能
     * @return 角色资源列表
     * @throws Exception 
     */
    public List<SysFunction> selectAllFunctionListByRoleId(Map<String,String> map) throws Exception;
    
    /**
     * 查询菜单名称是否存在
     * @param sysFunction
     * @return
     */
    public Integer selectSysFunctionForCheckFunctionName(SysFunction sysFunction);
    
}

